|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Data; 00030 using System.Configuration; 00031 using System.Collections; 00032 using System.Collections.Generic; 00033 using System.Web; 00034 using System.Web.Security; 00035 using System.Web.UI; 00036 using System.Web.UI.WebControls; 00037 using System.Web.UI.WebControls.WebParts; 00038 using System.Web.UI.HtmlControls; 00039 00040 using RAIS.Common.UserManagement; 00041 00042 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00043 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>; 00044 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>; 00045 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>; 00046 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>; 00047 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>; 00048 using FunctionRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRoleAttribute>; 00049 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>; 00050 00051 namespace RAIS.UI.SpecificMasks 00052 { 00056 public partial class EditFunctionalRoles_New_Update2 : System.Web.UI.Page 00057 { 00061 enum EditFunctionalRoles_PageMode 00062 { 00063 viewRoles, 00064 addRole, 00065 editRole 00066 }; 00067 string[] accessNames = new string[4]; 00068 //********************************************************************* 00069 #region Event handlers 00070 protected void Page_PreLoad(object sender, EventArgs e) 00071 { 00072 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00073 } 00084 protected void Page_Load(object sender, EventArgs e) 00085 { 00086 this.Response.Cache.SetNoStore(); 00087 if (this.CurrentUser == null) 00088 UI.Common.AccessManagement.SignOut(this); 00089 00090 this.LBLresult.Text = string.Empty; 00091 00092 if (!this.IsPostBack) 00093 { 00094 UI.Common.Localisation.TranslateGridViewHeader(this.GVfpermissions, this.ToString(), RAIS.Common.Constants.DEFAULT_LANGUAGE, this.CurrentUser.Language); 00095 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_FUNCTIONAL_ROLE.Replace("'", "\\'"))); 00096 00097 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name; 00098 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles; 00099 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00100 UI.Common.UserManagement.InitializeFunctionalRolesListBox(this.LBfmrolename, this.SavedFunctionRoleSelection); 00101 00102 this.ShowRole(); 00103 00104 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00105 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00106 } 00107 UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault); 00108 } 00114 protected void Page_Init(object sender, EventArgs e) 00115 { 00116 Common.PageManagement.SetScrolableListBox(LBfmrolename, this, true); 00117 } 00128 protected void LBfmrolename_SelectedIndexChanged(object sender, EventArgs e) 00129 { 00130 this.SavedFunctionRoleSelection = this.LBfmrolename.SelectedValue; 00131 this.GVfpermissions.SelectedIndex = -1; 00132 this.EnableDisableControls(); 00133 this.ShowRole(); 00134 } 00143 protected void DDLfmcategories_SelectedIndexChanged(object sender, EventArgs e) 00144 { 00145 UI.Common.UserManagement.InitializeSubcategoriesList(this.DDLfmsubcategories, 00146 this.SelectedCategory, 00147 this.SelectedRole); 00148 00149 UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask, 00150 this.SelectedCategory, 00151 this.SelectedSubcategory, 00152 this.SelectedRole); 00153 } 00161 protected void DDLfmsubcategories_SelectedIndexChanged(object sender, EventArgs e) 00162 { 00163 UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask, 00164 this.SelectedCategory, 00165 this.SelectedSubcategory, 00166 this.SelectedRole); 00167 } 00174 protected void BTNadd_Click(object sender, EventArgs e) 00175 { 00176 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.addRole; 00177 this.InitializeEditControls(); 00178 } 00185 protected void BTNedit_Click(object sender, EventArgs e) 00186 { 00187 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.editRole; 00188 this.InitializeEditControls(); 00189 } 00196 protected void BTNdelete_Click(object sender, EventArgs e) 00197 { 00198 bool success = true; 00199 success = this.RemoveFunctionRoleAttribute(); 00200 if (success) 00201 this.SaveRole(); 00202 } 00209 protected void BTNdiscard_Click(object sender, EventArgs e) 00210 { 00211 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles; 00212 } 00219 protected void BTNapply_Click(object sender, EventArgs e) 00220 { 00221 bool success = true; 00222 if (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.editRole) 00223 { 00224 success = this.RemoveFunctionRoleAttribute(); 00225 } 00226 if (success) 00227 success = this.AddFunctionRoleAttribute(); 00228 if (success) 00229 this.SaveRole(); 00230 } 00237 protected void GVfpermissions_RowCommand(object sender, GridViewCommandEventArgs e) 00238 { 00239 if (e.CommandName.Equals("Select")) 00240 { 00241 int rowIndex = Convert.ToInt32(e.CommandArgument); 00242 this.GVfpermissions.SelectedIndex = rowIndex; 00243 this.EnableDisableControls(); 00244 } 00245 } 00252 protected void LBTNlogout_Click(object sender, EventArgs e) 00253 { 00254 UI.Common.AccessManagement.SignOut(this); 00255 } 00262 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00263 { 00264 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00265 } 00266 #endregion 00267 //********************************************************************* 00268 #region Private helper methods 00269 00275 void ShowRole() 00276 { 00277 if (this.SelectedRole != null) 00278 { 00279 this.InitializeGridView(); 00280 } 00281 } 00285 protected void InitializeGridView() 00286 { 00287 this.GVfpermissions.DataSource = this.SelectedRole.Attributes.Values; 00288 this.GVfpermissions.DataBind(); 00289 } 00293 private void InitializeEditControls() 00294 { 00295 UI.Common.UserManagement.InitializeCategoriesList(this.DDLfmcategories, this.SelectedRole); 00296 this.SetCategorySelection(this.SelectedRoleAttribute); 00297 00298 UI.Common.UserManagement.InitializeSubcategoriesList(this.DDLfmsubcategories, 00299 this.SelectedCategory, 00300 this.SelectedRole); 00301 this.SetSubcategorySelection(this.SelectedRoleAttribute); 00302 00303 UI.Common.UserManagement.InitializeMasksList(this.DDLfmmask, 00304 this.SelectedCategory, 00305 this.SelectedSubcategory, 00306 this.SelectedRole); 00307 this.SetMaskSelection(this.SelectedRoleAttribute); 00308 00309 this.InitializeAccessFlags(); 00310 //try 00311 //{ 00312 // this.SetCategorySelection(this.SelectedRoleAttribute); 00313 // this.SetSubcategorySelection(this.SelectedRoleAttribute); 00314 // this.SetMaskSelection(this.SelectedRoleAttribute); 00315 //} 00316 //catch 00317 //{ 00318 00319 //} 00320 } 00324 private void InitializeAccessFlags() 00325 { 00326 if (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.addRole) 00327 { 00328 this.CBfmadd.Checked = false; 00329 this.CBfmdelete.Checked = false; 00330 this.CBfmedit.Checked = false; 00331 this.CBfmview.Checked = false; 00332 } 00333 else 00334 { 00335 this.CBfmadd.Checked = this.SelectedRoleAttribute.AccessAdd; 00336 this.CBfmdelete.Checked = this.SelectedRoleAttribute.AccessDelete; 00337 this.CBfmedit.Checked = this.SelectedRoleAttribute.AccessEdit; 00338 this.CBfmview.Checked = this.SelectedRoleAttribute.AccessView; 00339 } 00340 } 00344 private void EnableDisableControls() 00345 { 00346 this.LBfma.Enabled = this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles; 00347 this.LBfmrolename.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00348 this.GVfpermissions.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00349 this.BTNadd.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00350 this.BTNedit.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles) && (this.SelectedRoleAttribute != null); 00351 this.BTNdelete.Enabled = (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles) && (this.SelectedRoleAttribute != null); 00352 this.BTNsave.Enabled = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00353 this.BTNdiscard.Enabled = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00354 this.FSattributes.Visible = !(this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles); 00355 00356 UI.Common.UserManagement.EnableCommonControls(this, (this.CurrentEditFunctionalRoles_PageMode == EditFunctionalRoles_PageMode.viewRoles)); 00357 } 00361 private bool AddFunctionRoleAttribute() 00362 { 00363 bool success = true; 00364 FunctionRole selectedRole = this.SelectedRole; 00365 if (selectedRole != null) 00366 { 00367 FunctionRoleAttribute functionAttribute = new FunctionRoleAttribute(); 00368 functionAttribute.Category = this.SelectedCategory; 00369 functionAttribute.Subcategory = this.SelectedSubcategory; 00370 functionAttribute.Mask = this.SelectedMask; 00371 00372 functionAttribute.AccessView = this.CBfmview.Checked; 00373 functionAttribute.AccessAdd = this.CBfmadd.Checked; 00374 functionAttribute.AccessEdit = this.CBfmedit.Checked; 00375 functionAttribute.AccessDelete = this.CBfmdelete.Checked; 00376 00377 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00378 00379 success = this.ValidateNewFunctionRoleAttribute(functionAttribute, ref returnMessage); 00380 if (success) 00381 { 00382 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles; 00383 success = selectedRole.AddAttribute(functionAttribute, ref returnMessage); 00384 if (success) 00385 this.Modified = true; 00386 00387 } 00388 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00389 returnMessage, 00390 success); 00391 } 00392 return success; 00393 } 00397 private bool RemoveFunctionRoleAttribute() 00398 { 00399 bool success = false; 00400 FunctionRole selectedRole = this.SelectedRole; 00401 if (selectedRole != null) 00402 { 00403 FunctionRoleAttribute selectedAttribute = this.SelectedRoleAttribute; 00404 00405 string returnMessage = RAIS.Common.Messages.MODIFICATION_PRESS_SAVE; 00406 00407 success = selectedRole.RemoveAttribute(selectedAttribute, ref returnMessage); 00408 if (success) 00409 this.Modified = true; 00410 00411 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00412 } 00413 return success; 00414 } 00419 private bool SaveRole() 00420 { 00421 string returnMessage = string.Empty; 00422 bool success = true; 00423 00424 if (!this.Modified) 00425 { 00426 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_NO_MODIFICATION; 00427 success = false; 00428 } 00429 else 00430 { 00431 success = ApplicationLogicLayer.UserManagement.SaveFunctionRole(this.SelectedRole, ref returnMessage); 00432 if (success) 00433 { 00434 this.CurrentEditFunctionalRoles_PageMode = EditFunctionalRoles_PageMode.viewRoles; 00435 this.Modified = false; 00436 00437 this.InitializeGridView(); 00438 } 00439 } 00440 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00441 returnMessage, 00442 success); 00443 return success; 00444 } 00453 bool ValidateNewFunctionRoleAttribute(FunctionRoleAttribute newFuncitonRoleAttribute, ref string returnMessage) 00454 { 00455 FunctionRole funcitonRole = this.SelectedRole; 00456 if (funcitonRole == null) 00457 { 00458 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_DOES_NOT_EXIST; 00459 return false; 00460 } 00461 else 00462 { 00463 return funcitonRole.ValidateNewAttribute(newFuncitonRoleAttribute, ref returnMessage); 00464 } 00465 } 00471 private void SetCategorySelection(FunctionRoleAttribute roleAttribute) 00472 { 00473 if (roleAttribute != null 00474 && this.DDLfmcategories.Items.Contains(new ListItem(roleAttribute.Category.Name))) 00475 { 00476 this.DDLfmcategories.SelectedValue = roleAttribute.Category.Name; 00477 } 00478 } 00484 private void SetSubcategorySelection(FunctionRoleAttribute roleAttribute) 00485 { 00486 if (roleAttribute != null 00487 && this.DDLfmsubcategories.Items.Contains(new ListItem(roleAttribute.Subcategory.Name))) 00488 { 00489 this.DDLfmsubcategories.SelectedValue = roleAttribute.Subcategory.Name; 00490 } 00491 } 00497 private void SetMaskSelection(FunctionRoleAttribute roleAttribute) 00498 { 00499 if (roleAttribute != null 00500 && this.DDLfmmask.Items.Contains(new ListItem(roleAttribute.Mask.Name))) 00501 { 00502 this.DDLfmmask.SelectedValue = roleAttribute.Mask.Name; 00503 } 00504 } 00505 #endregion 00506 //********************************************************************* 00507 #region Private helper properties 00508 00511 private FunctionRole SelectedRole 00512 { 00513 get 00514 { 00515 FunctionRole functionRole = null; 00516 00517 if (this.LBfmrolename.SelectedIndex != -1) 00518 { 00519 FunctionRoles functionRoles = (FunctionRoles)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLES_TAG]; 00520 if (functionRoles.ContainsKey(this.LBfmrolename.SelectedValue)) 00521 functionRole = functionRoles[this.LBfmrolename.SelectedValue]; 00522 } 00523 00524 return functionRole; 00525 } 00526 } 00530 private FunctionRole.Category SelectedCategory 00531 { 00532 get 00533 { 00534 FunctionRoleCategories categories = (FunctionRoleCategories)this.Session[UI.Common.Constants.FUNCTION_ROLE_CATEGORIES_TAG]; 00535 if (categories != null && categories.ContainsKey(this.DDLfmcategories.SelectedValue)) 00536 return categories[this.DDLfmcategories.SelectedValue]; 00537 else 00538 return null; 00539 } 00540 } 00544 private FunctionRole.Subcategory SelectedSubcategory 00545 { 00546 get 00547 { 00548 FunctionRoleSubcategories subcategories = (FunctionRoleSubcategories)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SUBCATEGORIES_TAG]; 00549 if (subcategories != null && subcategories.ContainsKey(this.DDLfmsubcategories.SelectedValue)) 00550 return subcategories[this.DDLfmsubcategories.SelectedValue]; 00551 else 00552 return null; 00553 } 00554 } 00558 private Mask SelectedMask 00559 { 00560 get 00561 { 00562 Masks masks = (Masks)this.Session[RAIS.UI.Common.Constants.MASKS_TAG]; 00563 if (masks != null && masks.ContainsKey(this.DDLfmmask.SelectedValue)) 00564 return masks[this.DDLfmmask.SelectedValue]; 00565 else 00566 return null; 00567 } 00568 } 00572 private FunctionRoleAttribute SelectedRoleAttribute 00573 { 00574 get 00575 { 00576 if (this.SelectedRole != null) 00577 return this.SelectedRole.GetAttributeByIndex(GVfpermissions.SelectedIndex); 00578 else 00579 return null; 00580 } 00581 } 00585 EditFunctionalRoles_PageMode CurrentEditFunctionalRoles_PageMode 00586 { 00587 get 00588 { 00589 if (this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG] != null) 00590 { 00591 return (EditFunctionalRoles_PageMode)this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG]; 00592 } 00593 else 00594 return EditFunctionalRoles_PageMode.viewRoles; 00595 } 00596 set 00597 { 00598 string message; 00599 switch (value) 00600 { 00601 case EditFunctionalRoles_PageMode.addRole: message = RAIS.UI.Common.Constants.ADDING_NEW_FUNCTIONAL_ROLE; break; 00602 case EditFunctionalRoles_PageMode.editRole: message = RAIS.UI.Common.Constants.EDITTING_EXISTING_FUNCTIONAL_ROLE; break; 00603 00604 default: 00605 this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_TEMPORARY_TAG] = null; 00606 message = string.Empty; 00607 break; 00608 } 00609 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00610 this.Session[UI.Common.Constants.FUNCTION_ROLE_EDIT_MODE_TAG] = value; 00611 this.EnableDisableControls(); 00612 } 00613 } 00617 bool Modified 00618 { 00619 get 00620 { 00621 if (this.SelectedRole != null) 00622 return this.SelectedRole.Modified; 00623 else 00624 return false; 00625 } 00626 set 00627 { 00628 if (this.SelectedRole != null) 00629 this.SelectedRole.Modified = value; 00630 } 00631 } 00635 protected UserData CurrentUser 00636 { 00637 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00638 } 00642 private string SavedFunctionRoleSelection 00643 { 00644 get 00645 { 00646 if (this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG] != null) 00647 return this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG].ToString(); 00648 else 00649 return string.Empty; 00650 } 00651 set 00652 { 00653 this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLE_SAVED_SELECTION_TAG] = value; 00654 } 00655 } 00656 #endregion 00657 } 00658 }